<?php
// +--------------------------------  商品信息表  --------------------------------------
declare(strict_types=1);

namespace app\model;

use think\Model;

class Goods extends Model
{
    protected $autoWriteTimestamp = 'datetime';

    protected $createTime = 'create_time';
    protected $updateTime = false;

    protected $type = [
        'id'             => 'integer',
        'goods_id'       => 'string',
        'goods_name'     => 'string',
        'inventory'      => 'integer', // 商品库存
        'sale_volume'    => 'integer', // 商品销量
        'create_time'    => 'datetime', 
        'cover'          => 'string', // 商品封面图
        'price'          => 'float', // 商品价格
        'owner_store_id' => 'string', // 商品所属店铺ID
        'recommend'      => 'boolean', // 是否推荐商品【0:否，1：是】
        'type'           => 'string', // 商品类型名称
        'sort'           => 'integer', // 商品排序
    ];

    // 定义与商品标签的关联
    public function labels()
    {
        return $this->hasMany('GoodsLabels', 'goods_id', 'goods_id');
    }
    
    // 定义与商品轮播图的关联
    public function slideshows()
    {
        return $this->hasMany('GoodsSlidshows', 'goods_id', 'goods_id');
    }
    
    // 定义与商品详情图的关联
    public function detailImgs()
    {
        return $this->hasMany('GoodsDetailImgs', 'goods_id', 'goods_id');
    }
    
    // 定义与商品规格项的关联
    public function specifications()
    {
        return $this->hasMany('GoodsSpecifications', 'goods_id', 'goods_id');
    }
    
    // 定义获取规格项及其值的方法（嵌套关联）
    public function specificationsWithValues()
    {
        return $this->specifications()->with(['specis']);
    }
}

